This invention relates to development of software, and more particularly to methods, software and tools to facilitate such development.
Software development projects in many cases involve as much manpower resources as architectural or civil engineering projects, however, the progress and the results are not as easy to visualise. Thus software development involving more than one person has always been difficult to control effectively, and for this reason it has been the consensus for some time that a defined process is required. Development without a process gives rise to the following problems:                over-reliance on having the right people.        Difficulties in co-ordination and communication between people.        Inaccurate planning.        Lack of code/module re-use.        Lack of predictability of the software.        
Processes have been developed in recent years, however, for various reasons they have not been widely used. The following are some of the problems:                The process is not suitable for Object-Oriented (O) development.        There is a perception that implementation of a process involves too much overhead and additional developer time.        There is a perception that projects below a certain size are too small for implementation of a process.        The available processes do not strike a good balance between the traditional “waterfall” approach in which every stage must be completely finished before proceeding to the next stage, and the other extreme of constantly iterating in apparently endless cycles.        